Modern Calculator

PostPoslato: Subota, 30. Januar 2016, 17:12
od nikola011
Pre neki dan sam se malo igrao sa MathJS i MathJax bibliotekom i napisao jednu malu web aplikaciju koja omogućava izračunavanje matematičkih izraza u realnom vremenu + izvoz unetog izraza u obliku TeX koda. Aplikacija je responsive (prilagođava se različitim rezolucijama ekrana) i radi u svim modernijim pretraživačima (IE 6/7/8 nisu podržani) bez potrebe za instalacijom dodataka. Imam u planu da dodam bolju referencu svih funkcija, omogućim slikovni prikaz unetih izraza (kao što je to omogućeno i na forumu), a možda odradim i integraciju sa Wolfram Alpha servisom putem njihovog API-a.

http://moderncalculator.pe.hu/

Ukoliko naiđete na neki bag ili imate neki predlog, pišite :)

Zašto Modern: https://en.wikipedia.org/wiki/Metro_(design_language)

Re: Modern Calculator

PostPoslato: Nedelja, 31. Januar 2016, 08:38
od Daniel
Sviđa mi se dizajn (responsive, što kažeš), vidim da, pored ovih osnovnih operacija, ima i razne funkcije (trigonometijske, logaritmasku, [inlmath]\max[/inlmath], [inlmath]\min[/inlmath] itd), kao i konstante [inlmath]e[/inlmath], [inlmath]\pi[/inlmath], [inlmath]i[/inlmath]...

Odlična je opcija i export u Latex. :thumbup:

Imam neke sitnije primedbe, kao na primer:
  • Kad otkucam [inlmath]2/3[/inlmath], dobijem [inlmath]0.6666666666666666[/inlmath], umesto [inlmath]0.6666666666666667[/inlmath] (poslednju cifru je potrebno zaokružiti);
  • Kad otkucam [inlmath]125\!{\Large\hat{\phantom{-}}}\!(1/3)[/inlmath], dobijem [inlmath]4.999999999999999[/inlmath];
  • Kad otkucam [inlmath]i^2[/inlmath], dobijem [inlmath]-1+1.2246467991473532e-16i[/inlmath].
Dakle, ne bih to nazvao bagovima, već više nekim nepreciznostima (koje možda i sâm planiraš da u kasnijim verzijama poboljšaš).

Ali, programče je super. :thumbup:

Re: Modern Calculator

PostPoslato: Utorak, 02. Februar 2016, 19:24
od nikola011
Aplikacija je upravo ažurirana - dodao sam mogućnost kreiranja pregleda klikom na Generate Preview kao i referencu :) Malo sam poboljšao i performanse tako da se sada brže učitava. Imam u planu da dodam još neke male ispravke 'ispod haube' i olakšice pri pisanju, ali otom potom. Što se tiče zaokruživanja postaviću problem na forumu njihovog repozitorijuma pa ću ovde objaviti ako uspem to da rešim :)

:arrow: http://moderncalculator.pe.hu/

Re: Modern Calculator

PostPoslato: Sreda, 03. Februar 2016, 12:03
od Daniel
Odlične su ove dopune, a pogotovo referenca, kako bi korisnik znao koje sve funkcije može da upotrebi. :thumbup:
Eventualno, neke sugestije oko CSS-a – možda da staviš da Reference izgleda kao link (tj. kad se na nju dođe mišem da kursor pređe u šaku) kako bi korisnik znao da će klik na Reference imati efekta (prikazati spisak funkcija). Isto važi i za TeX code i za Preview.
Takođe, neka favicon bi dobro došla, a to je par minuta posla. :)

Re: Modern Calculator

PostPoslato: Nedelja, 21. Februar 2016, 18:05
od nikola011
Još jedan update - dodato automatsko zatvaranje zagradi (dosta olakšava pisanje, naročito na mobilnim uređajima) i poboljšane performanse odziva za oko 70% :)
https://gtmetrix.com/reports/moderncalc ... u/8fyYaRQd

Elem, pošto je PHP 7 ušao u stabilnu fazu biće dodatnih poboljšanja čim ažuriram sajt na novu verziju.

@Daniel, što se tiče one gore primedbe za rezultat, mislim da se radi o ovome:
http://mathjs.org/docs/datatypes/number ... off-errors

To je zvrčka kod JavaScript-a koja se lako rešava, popraviću to već sutra :)

Re: Modern Calculator

PostPoslato: Sreda, 27. April 2016, 20:34
od nikola011
Prošlo je 2 meseca od prošlog ažuriranja pa je bio red da nešto promenim - ovog puta novi dizajn, umesto Microsoft Modern UI sada je Google Material Design :) Gledao sam da uklonim one panele, ovako mi se čini da je manje konfuzno. Takođe je dodat novi favicon i promenjen naslov u Modern Calc (da bi stalo u tab). Šta vi mislite?

http://moderncalculator.pe.hu/

Available functions za sada prebacuje na stranicu MathJS - trenutno radim na implementiranju nekog rešenja koje ne bi usporilo učitavanje kao prošlo. Ne znam kad će biti gotovo, ali verovatno u sledećem ažuriranju (za oko 2 meseca). Sem promena u dizajnu odrađeno je dosta promena "ispod haube" koje se ne vide pri korišćenju, ali su dosta pomogle u organizaciji. Hteo sam da implementiram rešenje za kopiranje TeX koda na klik dugmeta, no odustao sam jer mnogi pregledači ne dozvoljavaju pristup clipboard-u.

Još jedna lepa vest - Modern Calculator je sada zvanično otvorenog koda, možete ga forkovati i prilagođavati, izmenjivati i igrati se sa njim po svojoj želji :)

Repozitorijum: https://bitbucket.org/zeyn99/mcalc

Tu je i stari favicon. Sva uputstva se nalaze na stranici, pod sekcijom For Developers. Do sledećeg apdejta - adios ;)

Re: Modern Calculator

PostPoslato: Četvrtak, 28. April 2016, 17:03
od Daniel
Prošlo je dosta vremena tako da sam već malko i zaboravio kako je izgledala prethodna verzija (nemoj zameriti), ali skinô sam taj kôd jer me baš zanimalo kako je to urađeno, i vidim da nema ništa u PHP-u već samo HTML+JS, što je baš zgodno jer se trenutni rezultat ispisuje u toku samog kucanja, bez pritiskanja ENTER-a. :thumbup:
(Možda je i ranije bilo tako, nisam obratio pažnju, sorry zbog toga.)
Sviđa mi se i dizajn i izbor boja, a pored onih mojih ranijih primedbi na nepreciznost (kojima bih dodao i sin(pi)=1.2246467991473532e-16), imao bih i jedan predlog za poboljšanje (mada ne znam koliko je izvodljivo) – kad otkucaš [inlmath]2^3[/inlmath], kao Latex-kôd se dobije {2}^{3}, umesto, lepo, 2^3. Da l' postoji mogućnosti da se ne prikazuju te vitičaste zagrade onda kada nisu neophodne, kako bi Latex-kôd izgledao što jednostavnije i preglednije?

nikola011 je napisao:no odustao sam jer mnogi pregledači ne dozvoljavaju pristup clipboard-u.

S ovim problemom sam se baš i ja nedavno susreo kad sam pravio nešto za neke svoje potrebe... :(

A za ovo,
nikola011 je napisao:Još jedna lepa vest - Modern Calculator je sada zvanično otvorenog koda, možete ga forkovati i prilagođavati, izmenjivati i igrati se sa njim po svojoj želji :)

svaka čast. :thumbup:

Re: Modern Calculator

PostPoslato: Četvrtak, 28. April 2016, 18:05
od nikola011
Prvo da ti se zahvalim što si iskoristio svoje vreme da pregledaš kodnu bazu - dosta mi znači feedback kad su ljudi bolje upućeni u način funkcionisanja aplikacije (a i sam sam pobornik softvera otvorenog koda) ;)

Daniel je napisao:ali skinô sam taj kôd jer me baš zanimalo kako je to urađeno, i vidim da nema ništa u PHP-u već samo HTML+JS, što je baš zgodno jer se trenutni rezultat ispisuje u toku samog kucanja, bez pritiskanja ENTER-a. :thumbup:

Malo ću otići van teme, ali nadam se da ne smeta da kažem par reči vezano za to. Tako je, PHP koda nema niti planiram da ga dodajem, a ono vezano za PHP 7 i performanse sam napisao misleći da će proces dopremanja klijentskog koda sa servera biti bolji ukoliko samo prebacim kod u PHP format (al' šipak, dođe mu na isto). Sad je dosta raširena praksa da se prave te SPA (Single Page aplikacije) koje su bazirane na neblokirajućem modelu i vrše stalnu konekciju sa serverom. PHP međutim u tom scenariju kaska za drugima - ne kažem da je loš PHP, on je super za svoje namene i većina sajtova ga koristi kao jezik na strani servera, ali on nije baš najbolji za neka rešenja (recimo zato je Facebook i napravio Hack koji je u suštini "PHP na steroidima").

Kada radim na serverskim aplikacijama obično pre biram Ruby programski jezik i njegov poznati web framework, Ruby on Rails. Razlog je taj što je odlično podržan, ima gomilu ispitanih i pouzdanih rešenja koja se mogu primeniti brzo i lako, a i nema mešanja biznis logike i prezentacije te je pisanje web aplikacija u njemu prosto milina (i PHP ima nešto slično, Laravel). Ne koristi se ovde toliko kao PHP i njegovi radni okviri, ali meni više odgovara.

E sad, ova aplikacija nema ništa što bi radila na serverskoj strani (što bi možda i bilo bolje kod starijih pregledača - rezultat se pošalje serveru, on ga obradi i pošalje u formatu koji je "lakši"), ali to je princip koji je već standardan i time se moja aplikacija ne bi uopšte razlikovala od sijaset drugih. Doduše, možda u budućnosti dodam i neke naprednije stvari poput registracije, istorije, brzog upisivanja najčešće upisivanih izraza i sl. Baš sad recimo i planiram da aplikaciju napišem u Rails-u, no u tom slučaju bi i testiranje bilo malko komplikovanije (instaliranje Ruby i Rails-a, paljenje web servera, migracija baze...). Uglavnom, neću da žurim sa promenama da ne napravim čudovište od tako male aplikacije :D

Daniel je napisao:(Možda je i ranije bilo tako, nisam obratio pažnju, sorry zbog toga.)

Nije. Ma nema potrebe da se izvinjavaš, pa to ne može pouzdano da zna korisnik, samo onaj koji administrira aplikaciju :D

Daniel je napisao:Sviđa mi se i dizajn i izbor boja, a pored onih mojih ranijih primedbi na nepreciznost

E za to sam hteo da dodam, ali prošao je rok za izmenu posta - pokušao sam više puta to da sredim i nisam uspeo, postoji uputstvo za to na sajtu MathJS biblioteke (treba koristiti tip podatka BigNumber) no aplikacija uopšte nije htela da prihvati izmenu i na kraju sam, nažalost, morao da odustanem od toga. Ako ikako uspem u budućnosti to da ispravim javiću.

Što se tiče LaTeX-a, on se generiše preko MathJax-a. Pogledaću u njihovoj dokumentaciji da li ima primera gde se to može uređivati.

P.S. Sorry ako sam udavio sa stručnom tematikom :P

Re: Modern Calculator

PostPoslato: Petak, 29. April 2016, 08:48
od Miladin Jovic
Svaka čast za sajt :thumbup:
Možda bi mogao, jednu trivijalnu stvar da ubaciš, dugme koje prazni polje za unos. (... .value="";) :)
Izvini ako je ta funkcija implementirana, a ja je nisam zapazio.

Re: Modern Calculator

PostPoslato: Petak, 29. April 2016, 10:50
od nikola011
Sređeno u poslednjem commit-u ;)

http://moderncalculator.pe.hu

Re: Modern Calculator

PostPoslato: Petak, 29. April 2016, 17:52
od Daniel
Super. :thumbup: Samo, vidi da nekako, posle stiskanja „Delete“, polje za unos bude i dalje vidljivo. Stanje je trenutno takvo da se posle stiskanja „Delete“ polje za unos uopšte ne vidi, pa korisnik mora da „napipava“ kursorom miša gde da unese sledeći izraz.

Re: Modern Calculator

PostPoslato: Petak, 29. April 2016, 19:49
od nikola011
Baš sam i sam o tome razmišljao danas. MDL tekstualna polja imaju ispod sebe liniju (border-bottom) tako da ću ga ostaviti i na tom polju, pored polja za TeX kod.

Elem, što se tiče izmena na strani klijenta veći deo stvari je odrađen i tu nema šta posebno da se dodaje (sad radim na nekom sistemu za bolje prikazivanje funkcija). Sada ću verovatno da krenem da implementiram sistem za registraciju i čuvanje izraza / istoriju kao i onih poznatijih za brzo unošenje. Naravno, ova verzija aplikacije će ostati ovakva kakva je i biće dostupna, samo ću iz nje krenuti sa novom, Modern Calculator Pro.

Re: Modern Calculator

PostPoslato: Utorak, 19. Jul 2016, 23:07
od nikola011
Ovog puta imam jednu dobru i jednu lošu vest :D

Dobra je ta da je Modern Calculator sada dostupan za desktop kao Modern Calculator for Desktop :)

Loša je ta što nije dostupan u binarnoj verziji - ovo znači da nema .exe, .app i Unix/Linux izvršivih datoteka za pokretanje već se projekat mora izgrađivati.

Evo kako to izgleda u praksi (na Debianu):

Slika

Projekat bi se mogao izgraditi za Windows (samo što sam ja trenutno zauzet nekim drugim projektima, a electron-packager kao za maler neće da radi na Linuksu). Ako ikoga ne mrzi da se bahće sa alatima, samo treba da skine Node.js i preko npm-a da instalira paket electron-prebuilt (iz komandne linije):
Kôd: Obeleži sve
npm install electron-prebuilt -g


Nakon toga samo uđe u direktorijum gde se nalazi mcalc-desktop i pokrene aplikaciju ovako:
Kôd: Obeleži sve
electron .


Source: https://bitbucket.org/zeyn99/mcalc-desktop