Open-source trackball Ploopy Adept má novou verzi nazvanou A+. Stále jde o symetrický desktopový trackball s šasi z 3D tiskárny a firmwarem QMK. Novinkami jsou dvojice tlačítek, jimiž půjde také otáčet, a volitelná opěrka ruky. Funkcionalita firmwaru je rozšířena o gesta, vrstvy a možnost konfigurace za běhu. Schémata a kód jsou jako obvykle na GitHubu. A+ půjde předobjednat za 99 CAD (bez dopravy a cla/DPH).
Prusa Research představil nové modely svých 3D tiskáren: Prusa XL+, CORE One+ (Gen 2) a CORE One L+.
Crown je multiplatformní open source herní engine. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT a GPLv3+. Byla vydána nová verze 0.64. Vyzkoušet lze online demo.
NVIDIA na konci ledna vydala v beta verzi nativního linuxového klienta své cloudové herní služby GeForce NOW. Včera oznámila ukončení beta verze a oficiální podporu Linuxu.
Byla vydána nová verze 3.5.0 nástroje pro inkrementální kopírování souborů rsync (Wikipedie). Přehled oprav a vylepšení v souboru NEWS. Řešeno je 33 zranitelností.
Organizace Apache Software Foundation (ASF) vydala verzi 31 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Firma IBM uvedla svůj první mikropočítač Personal Computer před 45 lety, v srpnu 1981. Základní konfigurace modelu 5150 za 1 565 tehdejších dolarů obsahovala desktop s Intel 8088 a 16KB RAM, Color Graphics Adapter a klávesnici. Právě klávesnice Model F/XT vybavené kapacitními spínači, vlivné a s převodníkem dodnes použitelné, připomíná sběratelský web Admiral Shark's Keyboards.
Slovensko odhalilo ruské součástky ve dvou testovaných zařízeních na zjišťování přestupků v silničním provozu a označilo je za bezpečnostní riziko. S odvoláním na vyjádření slovenského Národního bezpečnostního úřadu (NBÚ) to včera oznámil ministr vnitra Matúš Šutaj Eštok. Zároveň ohlásil ukončení spolupráce svého úřadu s dodavatelem části uvedeného systému, slovenskou společností Soitron. Opozice, která na problematické kamery upozornila už dříve, vyzvala k odvolání ministra vnitra.
Dle plánu dnes ve 13:00 proběhne veřejný test eDokladů. Jeho cílem je ověřit připravenost aplikace a související infrastruktury na vysokou souběžnou zátěž před podzimními komunálními volbami.
Byla vydána nová verze 3.47 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.13 souvisejícího programovacího jazyka Dart (Wikipedie).
namespace deghosting {
class Deghosting
{
public:
Deghosting() { ; }
virtual vector<FImagePtr> createWeightMasks() = 0;
virtual void loadImages(vector<string>& newInputFiles) = 0;
virtual void setFlags(const uint16_t newFlags) = 0;
virtual void setIterationNum(const int newIterations) = 0;
virtual ~Deghosting() { ; }
};
}
khan.h
namespace deghosting {
/** Mexican hat function, eq. 5 from Khan paper */
// AS FUNCTOR
template <typename InputType, typename ResultType>
class weightMexicanHatFunctor
{
public:
weightMexicanHatFunctor() { ; }
inline ResultType operator()(const InputType& a) const {
return mexicanHat(a);
}
protected:
template <class T>
inline ResultType mexicanHat(const T& a) const {
typedef typename NumericTraits<T>::RealPromote RealType;
const RealType x = NumericTraits<T>::toRealPromote(a);
RealType t = (x/127.5 -1);
t *= t; // ^2
t *= t; // ^4
t *= t; // ^8
t *= t; // ^16
return NumericTraits<ResultType>::fromRealPromote(1.0 - t);
}
};
struct khanAdvModes {
// nějaké ty enumy
};
template <class T>
class khan : public Deghosting
{
public:
khan(vector<string>& setInputFiles, int setIter, uint16_t setFlags, uint8_t setSave, uint8_t setUI);
void loadImages(vector<string>& newInputFiles) { inputFiles = newInputFiles; }
void setFlags(const uint16_t newFlags) { flags = newFlags; }
void setSaveMode(const uint8_t newSave) { save = newSave; }
void setIterationNum(const int newIterations) { iterations = newIterations; }
int getWidth() { return width; }
int getHeight() { return height; }
vector<FImagePtr> createWeightMasks();
~khan();
private:
// implementační krávovinky
};
}
Otázka je, proč mi to sakra po slinkování do .so knihovny nefunguje. Ostatní funkce, které jsou samostatně definováni v namespace deghosting ale podle nm exportovány jsou.
Kompletní zdrojáky jsou ke stažení ze svn:
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/branches/gsoc2009_deghosting/
add_executable(hugin_hdrmerge hugin_hdrmerge.cpp jbu.cpp khan.cpp support.cpp)
target_link_libraries(hugin_hdrmerge ${common_libs} ${image_libs})
Tady by snad neměly být žádné problémy, ale opět skončím s chybou:
/home/lukas/development/gsoc2009_deghosting/src/deghosting/hugin_hdrmerge.cpp:396: undefined reference to `deghosting::khan<deghosting::weightMexicanHatFunctor<int, float> >::khan(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, int, unsigned short, unsigned char, unsigned char)'
khan<weightMexicanHatFunctor<int,float> > deghoster(inputFiles, num_iters, adv, save, ui); tak by snad mělo ke konkretizaci té šablony dojít, ne? Problém je, že nejsem moc zběhlý v používání šablon tříd.
Pokud ji mas v .cpp, tak ji prendej to souboru s priponou .tcc a ten includuj na konci headeru. Vzhledem k tomu, ze ta metoda je inline, tak by ani nemela byt v knihovne.
Ivan
Tiskni
Sdílej: